The IAID is important information as it allows the user to know which
interface on the client device a given DHCPv6 lease corresponds to.
odhcpd already exposes this information (e.g. via "ubus call dhcp
ipv6leases"), but it would be good to have access to the same
information via the web interface, especially since odhcpd does take the
IAID into account when allocating addresses.
Signed-off-by: David Härdeman <[email protected]>
struct ether_addr mac;
char *hostname;
char *duid;
+ char *iaid;
union {
struct in_addr in;
struct in6_addr in6;
strtok(NULL, " \t\n"); /* iface */
e.duid = strtok(NULL, " \t\n"); /* duid */
-
if (!e.duid)
continue;
- p = strtok(NULL, " \t\n"); /* iaid */
-
- if (!p)
+ e.iaid = strtok(NULL, " \t\n"); /* iaid */
+ if (!e.iaid)
continue;
- if (!strcmp(p, "ipv4")) {
+ if (!strcmp(e.iaid, "ipv4")) {
e.af = AF_INET;
e.mask = 32;
}
e.hostname = strtok(NULL, " \t\n");
e.duid = strtok(NULL, " \t\n");
+ e.iaid = NULL;
if (!e.hostname || !e.duid)
continue;
if (lease->duid)
blobmsg_add_string(&blob, "duid", lease->duid);
+ if (lease->iaid)
+ blobmsg_add_string(&blob, "iaid", lease->iaid);
+
inet_ntop(lease->af, &lease->addr[0].in6, s, sizeof(s));
blobmsg_add_string(&blob, (af == AF_INET) ? "ipaddr" : "ip6addr", s);
E('th', { 'class': 'th' }, _('Hostname')),
E('th', { 'class': 'th' }, _('IPv6 address')),
E('th', { 'class': 'th' }, _('DUID')),
+ E('th', { 'class': 'th' }, _('IAID')),
E('th', { 'class': 'th' }, _('Lease time remaining'))
]),
E('tr', { 'class': 'tr placeholder' }, [
host || '-',
lease.ip6addrs ? lease.ip6addrs.join('<br />') : lease.ip6addr,
lease.duid,
+ lease.iaid,
exp
];
}),
E('th', { 'class': 'th' }, _('Host')),
E('th', { 'class': 'th' }, _('IPv6 address')),
E('th', { 'class': 'th' }, _('DUID')),
+ E('th', { 'class': 'th' }, _('IAID')),
E('th', { 'class': 'th' }, _('Lease time remaining')),
isReadonlyView ? E([]) : E('th', { 'class': 'th cbi-section-actions' }, _('Static Lease'))
])
host || '-',
lease.ip6addrs ? lease.ip6addrs.join('<br />') : lease.ip6addr,
lease.duid,
+ lease.iaid,
exp
];